﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ApuestaJMG.GUI.Contrato;
using Datos.Entidades;
using ApuestasJMG.GUI.Contrato;
using Logica.Comandos.AdministracionUsuarios;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos;
using Logica.FabricaLogica;
using System.Windows.Forms;
using Logica.Comandos.ComandosAdministracionEvento;
using Logica.Comandos.AdministracionEvento;

namespace ApuestasJMG.GUI.Presentador
{
    public class PresentadorModificarEvento
    {
        private IContratoModificarEvento _modificarEvento;
        Entidad evento = new Entidad();

        // <summary>
        /// presentador para hacer llamada a las interfaces de ModificarEvento
        /// </summary>
        /// 
        public PresentadorModificarEvento(IContratoModificarEvento modificarEvento)
        {
            _modificarEvento = modificarEvento;
        }

        /*
        public bool Validacion(String estado)
        {
            bool respuesta = false;

            String nombre = _modificarUsuario.nombre.Text;
            String apellido = _modificarUsuario.apellido.Text;
            int cedula = int.Parse(_modificarUsuario.cedula.Text);
            String email = _modificarUsuario.email.Text;
            String clave = _modificarUsuario.clave.Text;
            Int64 telefono = Int64.Parse(_modificarUsuario.telefono.Text);
            String estatus = _modificarUsuario.estatus.Text;

            String login = _modificarUsuario.login.Text;



            DialogResult result;

            if (estado.Equals("Inactivo"))
            {

                result = MessageBox.Show("Nombre : " + nombre + '\n' + "Apellido : " + apellido + '\n' + "Cedula : " + cedula + '\n'
               + "Telefono :" + telefono + '\n' + " Email :" + email + '\n' + " Estado : " + estatus + '\n' + " Login: " + login + '\n'
               + "Clave:  " + clave + '\n'
               + '\n', "Validacion de datos ", MessageBoxButtons.OKCancel);
                if (result == System.Windows.Forms.DialogResult.OK)
                {

                    result = MessageBox.Show(" Estado : " + estatus + '\n' + "El usuario sera eliminado ", "Validacion de datos ", MessageBoxButtons.OKCancel);

                    if (result == System.Windows.Forms.DialogResult.OK)
                    {
                        respuesta = true;

                    }

                    //return respuesta;
                }
            }

            if (estado.Equals("Activo"))
            {

                result = MessageBox.Show("Nombre : " + nombre + '\n' + "Apellido : " + apellido + '\n' + "Cedula : " + cedula + '\n'
                    + "Telefono :" + telefono + '\n' + " Email :" + email + '\n' + " Estado : " + estatus + '\n' + " Login: " + login + '\n'
                    + "Clave:  " + clave + '\n'
                    + '\n', "Validacion de datos ", MessageBoxButtons.OKCancel);

                if (result == System.Windows.Forms.DialogResult.OK)
                {
                    respuesta = true;

                }
                // return respuesta;
            }

            return respuesta;
        }*/


        // <summary>
        /// procedimiento que muestra eventos
        /// </summary>
        /// <param name="usuario">Evento a seleccionar</param>

        public void MostrarEvento(int Id)
        {
            Entidad crearEvento = FabricaEntidades.ObtenerEvento();
            Comando comando = FabricaComandoEvento.ObtenerComandoConsultarEventoID();
            comando.Id = Id;
            (comando as ComandoConsultarEventoID).Ejecutar();
            evento = comando.Entidad;
            _modificarEvento.fechai.Text = (evento as Evento).Fecha_Inicio;
            _modificarEvento.fechaf.Text = (evento as Evento).Fecha_Fin;

           _modificarEvento.hora.Text = (evento as Evento).Hora.ToString();
           _modificarEvento.minuto.Text = (evento as Evento).Minuto.ToString();
            
      

        }


        // <summary>
        /// procedimiento que modifica HistorialParticipante
        /// </summary>
        /// <param name="usuario">Evento a modificar</param>

        public void ModificarEvento(int id)
        {


            Entidad modificarEvento = FabricaEntidades.ObtenerEvento();


            (modificarEvento as Evento).Id_HistorialParticipante = id;
            (modificarEvento as Evento).Fecha_Inicio = _modificarEvento.fechai.Text;
            (modificarEvento as Evento).Fecha_Fin = _modificarEvento.fechaf.Text;
            (modificarEvento as Evento).Hora = int.Parse(_modificarEvento.hora.Text);
            (modificarEvento as Evento).Minuto = int.Parse(_modificarEvento.minuto.Text);

            Comando comandoEvento = FabricaComandoEvento.ObtenerComandoModificarEvento();
            comandoEvento.Entidad = modificarEvento;
            Boolean respuestaUsuario = false;

            (comandoEvento as ComandoModificarEvento).Ejecutar();
            respuestaUsuario = comandoEvento.Flag;


        }
    }
}